@奈良山
2年前 提问
1个回答

sql语句中定义表结构的命令

X0_0X
2年前

表结构的定义是指创建一个含有指定字段的表。所有的数据操作(增加、修改、删除、查询)以及约束、索引等概念都要依附于数据表而存在,而数据表也可以理解为对现实或者是业务的抽象结果。SQL通过CREATE TABLE命令建立表。

具体格式如下:

CREATE TABLE |DBF  〈表名1〉 [NAME  〈长表名〉  ][FREE(

        〈字段名1〉 〈类型〉  (〈字段宽度〉  [, 〈小数位数〉  ]) ]

        [NULL | NOT NULL]

        [CHECK 〈逻辑表达式1〉  [ERROR 〈字符型文本信息1〉 ]]

        [DEFAULT 〈表达式1〉 ]

        [PRIMARY KEY | UNIQUE]

        [REFERENCES 〈表名2〉 [TAG  〈标识名1〉 ]]

        [NOCPTRANS][,〈字段名2〉 …]

        [,PRIMARY KEY  〈表达式2TAG  〈标识名2|,UNIQUE  〈表达式3TAG  〈标识3〉]

        [,FOREIGN KEY  〈表达式4TAG  〈标识名4〉  [NODUPREFERENCES  〈表名3〉  [TAG  〈标识名5〉 ]]

        [,CHECK 〈逻辑表达式2〉  [ERROR 〈字符型文本信息2〉] ]

        )

        |FROM ARRAY 〈数组名〉

说明:

(1)TABLE和DBF选项等价,都是建立表文件。

(2)〈表名〉:为新建表指定表名。

(3) NAME〈长表名〉:为新建表指定一个长表名。只有打开数据库,在数据库中创建表时,才能指定一个长表名。长表名最多可以包含128个字符。

(4)FREE:建立的表是自由表,不加入到打开的数据库中。当没有打开数据库时,建立的表都是自由表。

(5) 〈字段名1〉〈类型〉[ (〈字段宽度〉[,〈小数位数〉] ) ]:指定字段名、字段类型、字段宽度及小数位数。字段类型可以用一个字符表示。

(6)NULL:允许该字段值为空;NOT NULL:该字段值不能为空。缺省值为NOT NULL。

(7)CHECK〈逻辑表达式1〉:指定该字段的合法值及该字段值的约束条件。

(8)ERROR〈字符型文本信息1〉:指定在浏览或编辑窗口中该字段输入的值不符合CHECK子句的合法值时,VFP显示的错误信息。

(9)DEFAULT〈表达式〉:为该字段指定一个缺省值,表达式的数据类型与该字段的数据类型要一致。即每添加一条记录时,该字段自动取该缺省值。

(10)PRIMARY KEY:为该字段创建一个主索引,索引标识名与字段名相同。主索引字段值必须惟一。UNIQUE:为该字段创建一个候选索引,索引标识名与字段名相同。

(11)REFERENCES 〈表名〉 [TAG 〈标识名〉 ]:指定建立持久关系的父表,同时以该字段为索引关键字建立外索引,用该字段名作为索引标识名。表名为父表表名,标识名为父表中的索引标识名。如果省略索引标识名,则用父表的主索引关键字建立关系,否则不能省略。如果指定了索引标识名,则在父表中存在索引标识字段上建立关系。父表不能是自由表。

(12)CHECK 〈逻辑表达式2〉[ERROR 〈字符型文本信息2〉 ]:由逻辑表达式指定表的合法值。不合法时,显示由字符型文本信息指定的错误信息。该信息只有在浏览或编辑窗口中修改数据时显示。

(13)FROM ARRAY 〈数组名〉:由数组创建表结构。数组名指定的数组包含表的每一个字段的字段名、字段类型、字段宽度及小数位数。